home *** CD-ROM | disk | FTP | other *** search
- This file hilites some of the most notable changes to the ClassAct
- classes for release 2.0 and includes sections of the related autodoc
- for new class tags. This is an accumlative listing.
-
- In this release, all classes have been revised to startup with V36 of
- the OS or later. A few bugs precluding use under OS 2.04 have been
- corrected as well.
-
- *************************************************************************
-
- CLASS: bitmap.image 41.2
-
- New image class release, written by Yvon Rozijn.
-
- BUGS/CHANGES:
-
- None
-
- *************************************************************************
-
- CLASS: getfile.gadget 41.146
-
- New gadget class release, written by Petter Nilsen.
-
- BUGS/CHANGES:
-
- None
-
- *************************************************************************
-
- CLASS: getfont.gadget 41.23
-
- New gadget class release, written by Petter Nilsen.
-
- BUGS/CHANGES:
-
- None
-
- *************************************************************************
-
- CLASS: getscreenmode.gadget 41.13
-
- New gadget class release, written by Petter Nilsen.
-
- BUGS/CHANGES:
-
- None
-
- *************************************************************************
-
- CLASS: arexx.class 41.69
-
- BUGS/CHANGES:
-
- Corrected possible enforcer hits and potential lockup when using
- Voodoo's "get new mail" or running a copy of Voodoo twice via an
- Aweb mail plug in. Generally, the arexx class should be a little
- more stable/durable now.
-
- *************************************************************************
-
- CLASS: penmap.image 41.2
-
- BUGS/CHANGES:
-
- Note, under AmigaOS 3.x ObtainBestPen() is used, but under AmigaOS 2.x
- this function is NOT available, and you can supply your own mapping
- via IA_Pens, otherwise no pen remapping occurs and chunky images are
- converted to planer verbatim, and may look rather sad depending on the
- palette. If anyone has a ObtainBestPen() compatible or simular function
- with sources they care to contribute, it can easily be added to the
- penmap image class. (41.1)
-
- Accidently passed a ULONG for a UWORD for the backgroud pen, odd
- that with prototypes SAS/C didn't even complain. Incidently the
- value assigned to this ULONG was casted as a UWORD :) (41.2)
-
- NEW TAGS:
-
- PENMAP_Precision
- Set the precision for ObtainBestPen() when penmap is used
- under AmigaOS 3.0 or later. See the ObtainBestPen autodoc
- for more details.
-
- Defaults to PRECISION_IMAGE.
-
- Applicability is (OM_NEW, OM_SET)
-
- PENMAP_ColorMap (struct ColorMap *)
- This tag is an alternate way to pass a colormap
- for use in ObtainBestPen(). If this tag is not provided
- then the colormap attached to the screen's viewport
- will be used, in that case PENMAP_Screen MUST be passed
- to penmap. If under AmigaOS 2.x, no pen remapping occurs
- unless default pens are passed via IA_Pens.
-
- Defaults to NULL.
-
- Applicability is (OM_NEW, OM_SET)
-
- PENMAP_MaskBlit (BOOL)
- Blits penmap on to display using a mask plane, this
- is very useful and encouraged when using penmap for
- program logos for your about window, etc. Using the mask
- technique, the preferenced window backfill pattern
- will show thru around or potentially in your image.
- If this effect is not desired, you should not use this
- tag, and frame your images in a bevel.
-
- Defaults to FALSE.
-
- Applicability is (OM_NEW, OM_SET)
-
- *************************************************************************
-
- CLASS: bevel.image 41.24
-
- BUGS/CHANGES:
-
- Now implements nearly all beveling preference options, including bevel
- style, default group label positioning, 3D group label shadow, etc.
-
- Fixed intermediate release bug causing omission of disable pattern
- rendering for draw states of IDS_DISABLED and IDS_SELECTDISABLED.
-
- Fixed enforcer hits caused by rendering the new XEN bevels with out DrawInfo.
-
- Implemented IM_FRAMEBOX method with very limited resolution
- awareness, *completly* untested at this time.
-
- Previous intermediate release of ClassAct 2, there was a missing
- ReleasePen() whene using THICK or XEN preferenced bevels. 41.23
-
- With 41.24, bevel longer uses ObtainBestPen()/ReleasePen(), but instead
- uses FindColor(). However, window class now attempts to lock the proper
- XEN/Thick pens ObtainBestPen() on window open, and ReleasePen() on
- window close. It is set not to alter your palette, simple lock the
- right colors if they exist and bevel should find these pens unless
- the palette changes such that another pen is a closer match. This
- still not the idea system, but it should correct the random pen
- color changing errors introduced by bevel 41.23 when it (correctly)
- released the pen after it was done using it. A better system may
- be devised in the future.
-
- Under 2.04, a potential 0 dimention EraseRect() would cause a crash. Fixed.
- This only occured when a Vertical or Horizontal bar bevel image was used
- DIRECTLY as a layout child, but not if specified as the layout group
- bevel style.
-
- NEW TAGS:
-
- BEVEL_ColorMap (struct ColorMap *)
- Screen ViewPort ColorMap, this tag is required tag for
- proper BVS_BUTTON xen shadow pen selections. Gadget or
- Image classes must supply this tag to bevel image
- atleast once before rendering the object in order for
- proper pen selections.
-
- Defaults to NULL.
-
- Applicability is (OM_NEW, OM_SET)
-
- BEVEL_Flags
- Intentionally left undocumented! Used for some hidden
- BVS_BUTTON xen style magic. Class authors inquire as needed.
-
- Defaults to 0.
-
- Applicability is (OM_NEW, OM_SET)
-
-
- *************************************************************************
-
- CLASS: integer.gadget 41.14
-
- BUGS/CHANGES:
-
- Implemented INTEGER_MinVisible tag, see below.
-
- Fully supports bevel style preferences. Thin, GadTools, Thick and XEN
- style is now applied to the arrow buttons.
-
- NEW TAGS:
-
- INTEGER_MinVisible (WORD)
- Set the minimum number of characters that should be
- visible for a 'GDOMAIN_MIMIMUM' domain size. This is a handy
- addition present in V41.127 or later to ensure a mimimum
- number characters will be visible in a integer gadget.
-
- *************************************************************************
-
- CLASS: palette.gadget 41.0
-
- BUGS/CHANGES:
-
- Now correctly renders itself with all beveling preference modes.
-
- NEW TAGS: none
-
- *************************************************************************
-
- CLASS: listbrowser.gadget 41.202
-
- BUGS/CHANGES:
-
- Added additional methods for optimized adding and refresh of
- specific nodes in a list.
-
- Now correctly renders itself with beveling preference modes.
-
- Handles lists with total node pixel count greater than 32768 pixels.
- propgclass on which scroller.gadget prior to V42 beta can only handle
- WORD variables. Because listbrowser smooth pixel scrolls, there was
- a good potential to overrun the WORD ranges. Scaled values are now
- used on large lists, in addition the new V42 beta scroller class
- handles LONG values and is implemented independant of propgclass.
-
- Implmented additional mode of operation, see new tags below.
-
- Tweaked Scroller size on 640x200 screens.
-
- Now bevels the checkbox for checkable nodes, uses a a thin beveling
- style rather than the previous plain flat looking black box.
-
- Now handles empty lists w/o enforcer hit(s).
-
- Corrected error with LISTBROWSER_MakeVisible, if the node was
- below last visible node, it scrolled the node upward above the
- top visible node. The entire height of the list gadget was mistakenly
- added to the scroll offset.
-
- Title separators could be caused to not refresh, notable in AWeb. Fixed.
-
- As a result of fixing the above bug, an extra separator was drawn on
- the far right in the title. Fixed.
-
- NEW TAGS:
-
- LISTBROWSER_HorizSeparators (BOOL) (V41)
- Renders horizontal lines below each node. This is useful if your
- listbrowser is very wide, and you want to make it easier for
- users to follow the rows of data.
-
- Defaults to FALSE.
-
- Applicability is (OM_NEW, OM_GET, OM_SET)
-
- LISTBROWSER_CheckImage (struct Image *) (V41)
- Provide a custom image for a checkbox node while that node is
- in the checked state. A NULL image means that listbrowser
- render some default imagery.
-
- Defaults to NULL.
-
- Applicability is (OM_NEW, OM_GET, OM_SET)
-
- LISTBROWSER_UncheckedImage (struct Image *) (V41)
- Provide a custom image for a checkbox node while that node is
- in the unchecked state. A NULL image means that listbrowser
- render some default imagery.
-
- Defaults to NULL.
-
- Applicability is (OM_NEW, OM_GET, OM_SET)
-
- LISTBROWSER_TotalNodes (LONG) (V41)
- Return the total number of nodes currently attached to the
- listbrowser.
-
- Applicability is (OM_GET)
-
- *************************************************************************
-
- CLASS: button.gadget 41.2
-
- BUGS/CHANGES:
-
- Nominal domain now sizes 2 pixel taller to accomodate some
- buggy fonts and generally look better, as well and 6 pixels + bevel
- size wider.
-
- Tweaked minimum domain height to me 2 pixels taller.
-
- Fixed autobuttons domain height to fontheight + 7 to match
- string, and titleless dropdown chooser regardless of bevel types
- thus producing a consistant mindomain size and layout regardless
- of different sized frames. This likely will change in implementation,
- yet reach the same desired results, when an IM_DOMAIN method
- is is implemented in bevel class.
-
- Nominal size domain is now a few pixels larger than minimum size
- for GA_Image buttons.
-
- Revised rendering routines, may be a little more tolerable of
- MagicMenu's and other simular hacks, on the down side, it could
- make subclassing/method overloading a bit more challanging to do.
-
- NEW TAGS:
-
- BUTTON_DomainString (STRPTR)
- Used to specify the NULL terminated string to use as the text
- to domain the gadgets minimum size. This string is NEVER
- rendered on screen. This is useful when you need to create
- a button with a empty ("") or NULL string, but want to enforce
- minimum size in a layout group based on some initializing
- string and the current preferenced font.
-
- Defaults to NULL.
-
- Applicability is (OM_NEW, OM_SET)
-
- *************************************************************************
-
- CLASS: checkbox.gadget 41.2
-
- BUGS/CHANGES:
-
- Eeek! Contrary to documentation, there was NO OM_UPDATE support at all.
- Update tag setting and rendering support implemented, as well as
- notification of selection state as per existing documentation.
-
- NEW TAGS: none
-
- *************************************************************************
-
- CLASS: chooser.gadget V41.9
-
- BUGS/CHANGES:
-
- Now StackSwap()'s input methods when under input.device task context so
- to avoid a potential stack overrun on certain systems when opening the
- popup/dropdown selection window. This overrun was especially apparent
- on EGS systems.
-
- Fixed titleless dropdown domain height to fontheight + 7 to match
- string, and autobuttons regardless of bevel type.
-
- ActivateLayoutGadget() or keyboard short cuts now cause the popup menu
- to open. Cursor arrow keys move the selection bar, Return selects, Escape
- cancels as does the main window going inactive for any reason. Incidently
- this change allows support of GA_TabCycle to open the popup as well, however
- I'm not so sure this is a good thing to exploit in an application.
-
- Recompiled with optimizer on, reduced size nearly 2k.
-
- NEW TAGS:
-
- CHOOSER_Offset (UWORD)
- This value is added to the value sent in notifications
- via the 'CHOOSER_Active' tag. Since chooser selections
- begin and 0 as the first selection, and some objects
- begin at 1 (such as DATEBROWSER_Month accepts 1 thru 12)
- this tag is useful in chooser to datebrowser innerconnections
- to map a 0-11 chooser selection to datebrowser month 1 thru 12.
-
- Defaults to 0.
-
- Applicability is (OM_NEW, OM_SET)
-
- New option(s) for AllocChooserNodeAttrsA() and SetChooserNodeAttrsA();
-
- CNA_SelImage (struct Image *)
-
- Selected state Image to be placed to the left of the CNA_Text in
- the Chooser menu. Background image pen remapping is not currently
- implemented.
-
- CNA_ReadOnly (BOOL) (41.3)
-
- Selected popup/dropdown item under mouse is NOT rendered
- as selected, by request of Yvon for AWeb's dropdown help.
- It should be noted, this is potentially deceiving as the
- the item can be selected, and will return a gadgetup.
-
- Note, 41.5 on up will/should block the gadgetup.
-
- CNA_Disabled (BOOL) (41.5)
-
- Blocks selection of item, no gadgetup is returned. Items are
- ghosted via true ghosting with the background pen, simular to
- intuition menus. A future version might take a clue from
- MagicMenus 2.0 and ghost/shadow using aditional pens, as it
- is much easier to read the disabled selection but still is
- visible different. These ghosting styles could become user
- referenced at risk of becomming another MUI like prefs. ;0
-
- CNA_Separator (BOOL) (41.7)
-
- Makes an item a non selectable separator (~~~~~~ style) node
- simular to intuition menus.
-
-
- *************************************************************************
-
- CLASS: clicktab.gadget 41.1
-
- BUGS/CHANGES:
-
- New render styling, thought to to be more visually pleasing by most :)
-
- Minimized rendering and return of GADGETUP when selecting the
- page that is already current.
-
- TNA_Enabled changed to TNA_Disabled for consistancy with other tags
- but is still not supported anyway, so no harm done!
-
- Reduced click tab height for better look on 640x200 screens, and
- reduced popup action from 2 pixels to 1 pixel. All in all, I'd
- say its an improvement.
-
- NEW TAGS:
-
- New option(s) for AllocClickTabNodeAttrsA() and SetClickTabNodeAttrsA();
-
- TNA_TextPen (WORD)
-
- Specifies pen number to use for the label.
-
- Defaults to pens[TEXTPEN].
-
- *************************************************************************
-
- CLASS: fuelgauge.gadget 41.2
-
- BUGS/CHANGES:
-
- Fully fills inner bevel areas for all bevel preference modes.
-
- Added additional text rendering support, including VarArgs much like
- that which is supported by button.gadget.
-
- Rendering should no longer cause icon dragging to abort. However,
- if you receive a non zero return value from SetGadgetAttrs() when
- updating FUELGAUGE_Level, that indicates fuelgauge could not perform
- its own safe locking update. In this case, you should NOT RefreshGList
- contrary to what you might thing. However, this applicable ONLY to V41
- of fuelgauge, prior versions requier RefreshGList to update visuals.
-
- Also note, it is theoretically possible for the gauge to miss a render
- update, thus it is recommended any final status strings set in a gauge
- DO follow with a RefreshGList to ensure any final "resting state" of
- the gadget is accuratly displayed.
-
- Changed rendering code to make a speed advantage of using OS 3.0
- specific calls such as SetABPenDrMd() when using V39 or later.
-
- NEW TAGS:
-
-
- FUELGAUGE_VarArgs (APTR)
- Varargs data array to supply data for RawDoFmt() when
- format specifiers are to be used in GA_Text text strings.
-
- Defaults to NULL.
-
- Applicability is (OM_NEW, OM_SET)
-
- FUELGAUGE_Justification (WORD)
- Justification mode of fuelgauge (GA_Text) text label.
- Percentage rendering, when enabled, is always centered.
-
- Supports:
-
- FGJ_LEFT
- FGJ_CENTER
-
- Defaults to FGJ_LEFT.
-
- Applicability is (OM_NEW, OM_SET)
-
- *************************************************************************
-
- CLASS: layout.gadget 42.30
-
- BUGS/CHANGES:
-
- Optimized domain, layout and render methods for greater speed.
-
- Layout error introduced durring code optimizations introduced a small
- layout spacing error between the first two objects, now fixed.
-
- Resize no longer cancels GA_ReadOnly setting.
-
- 42.16 snuck out on May 30th 96 - dispose would have caused enforcer hits
- or a crash on some layout groups (notable in AWeb prefs). It was an
- intermediate bug that krept in and promptly fixed in 42.17.
-
- 42.20 will now DisposeObject all children, even if the layout
- creation/taglist processing failed. In previous versions, if the
- tag list processing failed, object not yet processed in the
- layout tag list would not be disposed of. Thanks to Magnus
- and Yvon for catching this one.
-
- 42.24 A *very* weird bug was fixed. A simple refresh window containing
- string or integer (ROM strgclass based) gadgets nested two or more
- layout levels deep in a page group would layer locker or guru the
- machine after refresh - ONLY if the the overlapping window being close
- was a shell/newcli window! This one I still don't fully understand yet
- but mangaged to fix it anyhow. ;0 Thanks to Yvon for catching this one.
-
- 42.27 Significantly increased domain method via changes to LayoutLimits()
- and handling of label/domain alignments. Additionally, window resizing
- layout may occur faster as well as labels are nolonger re-domained
- as they have already been domained and aligned at window open time.
-
- 40.30 Improved dispatching speed of OM_SET method slightly.
-
- NEW TAGS:
-
- LAYOUT_Inverted (BOOL)
- If set TRUE, children are added to the layout group
- in reverse order, ie via AddHead() vs AddTail().
- This might be especially useful for those who wish to
- port the Asm programmer macros from another other GUI
- system, ie, BGUI for example.
-
- It is also handy to just flip positions of gadgets in
- a layout group, ie, speedbar on left/right prefs, etc.
- Note, this tag does not change the order of gadgets
- already present in a group. This tag must be passed first.
-
- Defaults to FALSE.
-
- Applicability is (OM_NEW, OM_SET)
-
- CHILD_ScaleHeight (UWORD)
- CHILD_ScaleWidth (UWORD)
- Cause the minimum domain size of an object to be
- scaled to a larger value. IE, a value of 20 with
- a min domain size of 50 results in a 60 pixel minimum.
-
- That is to say;
-
- newmin = min + ((scale * min)/100);
-
- These tags are handy for use on listbrowser object to extend
- the width or height to a more realistic size. Because this
- scaling could potentially force a layout beyond the maximum
- size for a screen (thus causing a potential font fallback)
- you should use some commen sence as to when to apply such
- a scalar, and how much is overkill.
-
- Defaults to 0.
-
- Applicability is (OM_NEW, OM_SET)
-
- *************************************************************************
-
- CLASS: radiobutton.gadget 41.1
-
- BUGS/CHANGES:
-
- Corrected keyboard control so selection wraps around rather than
- incrementing or decrementing selection to an invalid/invisible selection.
-
- NEW TAGS:
-
- *************************************************************************
-
- CLASS: speedbar.gadget 41.2
-
- BUGS/CHANGES:
-
- Corrected various potential bugs in SBNA_Toggle/SBNA_MXGroup handling.
-
- Implemented SPEEDBAR_EvenSize tag.
-
- Implemented SBNA_Disabled.
-
- Now safty checks for empty lists, but to domain correctly your buttons
- must be added to the bar before domain/layout occurs.
-
- Fixed, or atleast improved rendering/centering of vertical orientated
- bars.
-
- Corrected rendering of SBNA_Disabled buttons.
-
-
- NEW TAGS:
-
- SPEEDBAR_EvenSize (BOOL)
- Causes all buttons in the bar to size equal to the largest.
-
- Defaults to FALSE.
-
- Applicability is (OM_NEW, OM_SET, OM_GET)
-
- New option(s) for AllocSpeedBarNodeAttrsA() and SetSpeedBarNodeAttrsA();
-
- SBNA_Disabled (BOOL)
-
- Set a button in the bar as disabled. If setting this after the bar
- has been rendered, you must follow this with RefreshGList() on the
- speedbar object to cause the disable rendering to occur.
-
- Defaults to FALSE.
-
- *************************************************************************
-
- CLASS: string.gadget 41.2
-
- BUGS/CHANGES:
-
- Incorrect semaphore in dispatcher allowed potential deadlock situation.
-
- Fixed domain height to fontheight + 7 to match autobuttons and
- titleless dropdown choosers regardless of bevel types. And, caused
- string gadget height to be more uniform with integer gadget height
- which generally makes the GUI display look alot better, especially
- for 640x200 users where the prior versions of string gadget where a
- bit too tall.
-
- Revised input handling methods some in attempt to fix a bug with
- window class gadgethelp, no change. Infact, the bug could be
- in strgclass itself - currently investigating that possibility.
-
- NEW TAGS:
-
- STRINGA_MinVisible (WORD)
- Set the minimum number of characters that should be
- visible for a 'GDOMAIN_MIMIMUM' domain size. Nominal
- domain sizes to twice this minimum. This is a handy
- addition present in V40.35 or later to ensure a mimimum
- number characters will be visible in a string gadget.
-
- *************************************************************************
-
- CLASS: window.class 42.39
-
- BUGS/CHANGES:
-
- Setting WA_BusyPointer TRUE will turn off defer layout so if the app
- is busy, a simple refresh window or resized window will refresh
- normally while the application is theoretically busy to process
- the window class input which causes the defer refresh to occur.
- Setting the busy state FALSE will return defer layout to the previous
- setting. In addition, GA_ReadOnly is also set/cleared on the window
- layout as well, a busy window will not accept input. If this is
- counter productive to you, you may override this by setting GA_ReadOnly
- FALSE (on the layout). In addition, a busy window will also call
- OffMenu(NOITEM) or OnMenu(NOITEM) to disable the menu bar.
-
- It should be noted, checked menu items should be tracked/rechecked,
- this change was hoped to avoid that by window class not using
- ClearMenuStrip()/ResetMenuStrip() but this does not work fully either.
-
- Window now as internal border prop scroller creation, but is undocumented
- as it may be replaced with border groups to allow neat stuff like a page
- flip/count gadget for word processors, bottom border text status
- gadgets, as well as scrollers. Comments & testers welcome...
-
- Potential bugged/corrupted version of 41.24 crept out in a demo. Such
- a class missed window resize refresh on some simple refresh windows.
-
- Window class now tries to obtain the best pens for XEN/Thick bevels
- on window open, and releases them on window close.
-
- Corrected enforcer hit closing windows in an intermediate V42.31
- test release of the new pen allocation system.
-
- Added WMHI_INTUITICK, it was documented but apparently wasn't
- implemented. Also added WMHI_MOUSEMOVE and WMHI_MOUSEBUTTONS
- as the next two WMHI_#? return values, however, for mouse move
- you still need to peek the mouse position elsewhere, such as
- in IntuitionBase->MouseX and MouseY. It can't be returned via
- in the window class input method code. Although, window corner
- relative mouse x/y tags might be a suggestion for the future.
-
- #define WMHI_INTUITICK (14<<16) /* IDCMP intuitick */
- #define WMHI_MOUSEMOVE (15<<16) /* IDCMP mouse move */
- #define WMHI_MOUSEBUTTONS (16<<16) /* IDCMP mouse buttons */
-
- Windows set busy via WA_BusyPointer still allowed gadget activation
- via keyboard control. This is now corrected, and with this release
- the busy handling it done via Request()/EndRequest() with a NULL
- requester as recommended in the RKM.
-
- NEW TAGS:
-
- WINDOW_RefWindow (struct Window *) (V42.38)
-
- Causes WINDOW_Position of CENTERSCREEN and TOPLEFT to be
- relative to the window pointed to via this tag rather than
- the screen. WINDOW_Position w/CENTERMOUSE is uneffected.
-
- Tag value: (WINDOW_Dummy + 41)
-
- (OM_NEW, OM_SET, OM_UPDATE)
-
- NOTE: This tag has not been fully tested yet, its currently
- provided for those who need/wish to try it. You know who
- you are. Please report your findings to caldi@usa.nai.net
- if you use it. :)
-
- *************************************************************************
-
-